package com.dkt.android.base

import android.content.Context
import android.graphics.Color
import android.os.Build
import android.util.AttributeSet
import android.view.View
import com.dkt.android.utils.StatusBarUtil
import com.dtb.utils.base.DtbBaseActivity
import com.zhy.autolayout.AutoFrameLayout
import com.zhy.autolayout.AutoLinearLayout
import com.zhy.autolayout.AutoRelativeLayout

/**
 * @author: jcm
 * @email: jiangcm@aplus-it.cn
 * @createTime: 20-6-3
 */
abstract class BaseActivity : DtbBaseActivity() {

    private val LAYOUT_LINEARLAYOUT = "LinearLayout"
    private val LAYOUT_FRAMELAYOUT = "FrameLayout"
    private val LAYOUT_RELATIVELAYOUT = "RelativeLayout"


    override fun onCreateView(name: String, context: Context, attrs: AttributeSet): View? {
        return when (name) {
            LAYOUT_FRAMELAYOUT -> AutoFrameLayout(context, attrs)
            LAYOUT_LINEARLAYOUT -> AutoLinearLayout(context, attrs)
            LAYOUT_RELATIVELAYOUT-> AutoRelativeLayout(context, attrs)
            else -> super.onCreateView(name, context, attrs)
        }
    }


    override fun onTintStatusBar() {
        //沉浸式代码配置
        //当FitsSystemWindows设置 true 时，会在屏幕最上方预留出状态栏高度的 padding
        StatusBarUtil.setRootViewFitsSystemWindows(this, false)
        //设置状态栏透明
        StatusBarUtil.setTranslucentStatus(this)
        //一般的手机的状态栏文字和图标都是白色的, 可如果你的应用也是纯白色的, 或导致状态栏文字看不清
        //所以如果你是这种情况,请使用以下代码, 设置状态使用深色文字图标风格, 否则你可以选择性注释掉这个if内容
        if (!StatusBarUtil.setStatusBarDarkTheme(this, true)) {
            //如果不支持设置深色风格 为了兼容总不能让状态栏白白的看不清, 于是设置一个状态栏颜色为半透明,
            //这样半透明+白=灰, 状态栏的文字能看得清
            StatusBarUtil.setStatusBarColor(this, 0x55000000)
        }
    }

}